package com.ruoyi.training.mapper;

import java.util.List;

import com.ruoyi.examination.domain.PaperConfig;
import com.ruoyi.training.domain.TrainingClass;
import com.ruoyi.training.dto.TrainingClassDto;
import org.apache.ibatis.annotations.Param;

/**
 * 培训班主Mapper接口
 * 
 * @author WorrilessGo
 * @date 2025-09-24
 */
public interface TrainingClassMapper 
{
    /**
     * 查询培训班主
     * 
     * @param trainingClassId 培训班主主键
     * @return 培训班主
     */
    public TrainingClass selectTrainingClassByTrainingClassId(String trainingClassId);

    /**
     * 查询培训班主列表
     * 
     * @param trainingClass 培训班主
     * @return 培训班主集合
     */
    public List<TrainingClass> selectTrainingClassList(TrainingClass trainingClass);

    /**
     * 新增培训班主
     * 
     * @param trainingClass 培训班主
     * @return 结果
     */
    public int insertTrainingClass(TrainingClass trainingClass);

    /**
     * 修改培训班主
     * 
     * @param trainingClass 培训班主
     * @return 结果
     */
    public int updateTrainingClass(TrainingClass trainingClass);

    /**
     * 删除培训班主
     * 
     * @param trainingClassId 培训班主主键
     * @return 结果
     */
    public int deleteTrainingClassByTrainingClassId(String trainingClassId);

    /**
     * 批量删除培训班主
     * 
     * @param trainingClassIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTrainingClassByTrainingClassIds(String[] trainingClassIds);

    /**
     * 根据条件查询培训班级列表
     * @param trainingClassDto 查询条件DTO
     * @return 班级列表
     * lqx
     */
    public List<TrainingClassDto> selectList(TrainingClassDto trainingClassDto);

    /**
     * 班主任查询我的班级列表
     *
     * @param trainingClassDto 培训班DTO，包含当前登录用户ID
     * @return 培训班集合
     */
    public List<TrainingClassDto> selectMyClasses(TrainingClassDto trainingClassDto);

    public PaperConfig selectPaperConfigByPaperConfigId(@Param("examPaperId") String examPaperId);

    public int updateTrainingClassIsRemoveByTrainingClassIds(String[] trainingClassIds);

    //通过班级ids查询出对应的班级详细信息
    public List<TrainingClassDto> selectListByClassIds(@Param("classIds") List<String> classIds);
}
